package com.sky.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sky.entity.Order;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.Map;

@Mapper
public interface OrderMapper extends BaseMapper<Order> {
    // 根据学生ID查询订单
    IPage<Order> selectByStudentId(IPage<Order> page, @Param("studentId") Long studentId);
    // 根据订单号查询订单
    Order selectByOrderNo(String orderNo);
    // 取消订单
    void cancelOrder(Long id);
    
    // 管理员端订单分页查询
    IPage<Order> selectByAdminQuery(IPage<Order> page, @Param("params") Map<String, Object> params);
    
    // 根据状态统计订单数量
    Long selectCountByStatus(@Param("params") Map<String, Object> params);
    
    // 根据日期范围统计订单数量
    Long selectCountByDateRange(@Param("params") Map<String, Object> params);
    
    // 计算总销售额
    BigDecimal selectTotalAmount();
    
    // 根据日期范围计算销售额
    BigDecimal selectTotalAmountByDateRange(@Param("params") Map<String, Object> params);
    
    // 根据商家ID查询订单
    IPage<Order> selectByMerchantId(IPage<Order> page, @Param("merchantId") Long merchantId);
}